<?php

namespace application\common\models;

class member_model {

    /**
     * 获取当前登录用户id
     * @return mixed
     */
    public static function get_user_id() {
        $user_id = session('uid');
        return $user_id ? $user_id : 0;
    }

    /**
     * 根据用户id获取指定用户信息
     * @param $user_id
     * @return mixed
     */
    public static function get_user_info($user_id) {
        if (!$user_id) {
            $user_id = self::get_user_id();
        }
        return db('member')->where(['uid' => $user_id])->find();
    }

    /**
     * 根据用户id获取用户名
     * @param $user_id
     */
    public static function get_user_name($user_id) {
        if (!$user_id) {
            $user_id = self::get_user_id();
        }
        return self::get_user_info($user_id)['username'];
    }

    /**
     * 根据用户id获取用户名(邮箱)
     * @param $user_id
     */
    public static function get_name_email($user_id) {
        $user = self::get_user_info($user_id);
        return $user['name'] . '(' . $user['email'] . ')';
    }

    /**
     * 根据用户id获取用户昵称
     * @param $user_id
     */
    public static function get_user_email($user_id) {
        return self::get_user_info($user_id)['email'];
    }

    /**
     * 根据用户id获取参与的项目数量
     * @param $user_id
     */
    public static function get_join_project_num($user_id) {
        if (!$user_id) {
            $user_id = self::get_user_id();
        }
        return db('member')->where('user_id', '=', $user_id)->count();
    }

    /**
     * 获取用户列表
     * @param array $filter
     * @return mixed
     */
    public static function get_user_list($filter = []) {
        $users = db('member')->findAll();
        return $users;
    }

    /**
     * 验证密码是否正确
     * @param $user_id
     * @return mixed
     */
    public static function check_password($password) {
        if (!$password) {
            return false;
        }
        $password = authcode($password, 'ENCODE');
        $user_id = self::get_user_id();
        $result = db('member')->where('uid', '=', $user_id)->where('password', '=', $password)->find();
        if ($result) {
            return true;
        } else {
            return false;
        }
    }

}
